package org.dromara.business.domain;

import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;

/**
 * 视频基础信息对象 t_video
 *
 * @author Hao Tong Xue
 * @date 2025-04-21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_video")
public class Video extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 视频 ID
     */
    @TableId(value = "id")
    private Long id;

    /**
     * 视频标题
     */
    private String title;

    /**
     * 视频简介
     */
    private String description;

    /**
     * 视频文件 id
     */
    private Long fileId;

    /**
     * 精灵图文件id
     */
    private Long spriteId;

    /**
     * 预览图配置json
     */
    private String thumbnailInfo;

    /**
     * 分辨率（如 1080p、720p）
     */
    private String resolution;

    /**
     * 视频格式（mp4, flv, avi 等）
     */
    private String videoFormat;

    /**
     * 文件大小（字节）
     */
    private Long size;

    /**
     * 封面图片 id
     */
    private Long coverId;

    /**
     * 所属合集id
     */
    private Long collectionId;

    /**
     * 视频分区 ID
     */
    private Long categoryId;

    /**
     * 视频时长（秒）
     */
    private String duration;

    /**
     * 视频类型：0-自制，1-转载
     */
    private Integer videoType;

    /**
     * 转载来源信息（仅当 video_type=1 时有值）
     */
    private String sourceInfo;

    /**
     * 二创设置：0-否，1-是
     */
    private Integer isRemix;

    /**
     * 可见范围：0-公开，1-私密，2-仅粉丝可见
     */
    private Integer visibility;

    /**
     * 声明与权益信息
     */
    private String copyrightInfo;

    /**
     * 是否关闭弹幕：0-否，1-是
     */
    private Integer disableDanmaku;

    /**
     * 是否关闭评论：0-否，1-是
     */
    private Integer disableComment;

    /**
     * 是否开启精选评论：0-否，1-是
     */
    private Integer enableFeaturedComments;

    /**
     * 视频状态：0-草稿,1-待审核,2-已发布,3-下架
     */
    private Integer videoStatus;

    /**
     * 播放次数
     */
    private Integer playCount;

    /**
     * 弹幕数量
     */
    private Integer danmakuCount;

    /**
     * 评论数量
     */
    private Integer commentCount;

    /**
     * 点赞数量
     */
    private Integer likeCount;

    /**
     * 投币数量
     */
    private Integer coinCount;

    /**
     * 收藏数量
     */
    private Integer favoriteCount;

    /**
     * 分享次数
     */
    private Integer shareCount;

    /**
     * 删除标志（0代表存在 1代表删除）
     */
    @TableLogic
    private String delFlag;

    /**
     * 备注
     */
    private String remark;


}
